/* 中文字体：只覆盖中文字符 */
@font-face {
  font-family: 'CustomChineseFont';
  src: url('https://file.web.hlingsoft.com/LNuesVw1QH7xiXcghEE61YKSCuyN3zKI/SourceHanSerifCN-Medium.otf') format('opentype');
  unicode-range: U+4E00-9FFF, U+3400-4DBF, U+3000-303F;
}

/* 数字字体（等宽），只匹配数字字符 */
@font-face {
  font-family: 'CustomMonoDigits';

  src: local('ui-monospace'), local('SFMono-Regular'), local('Menlo'), local('Monaco'), local('Consolas');
  unicode-range: U+0030-0039; /* 只覆盖 0–9 */
}

/* 全局字体栈设置：优先数字、中文，再系统英文字体 */
body {
  font-family:
    'CustomMonoDigits',   /* 数字用等宽 */
    'CustomChineseFont',  /* 中文 */
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,
    sans-serif;
}

.arc-underline {
    position: relative;
    display: inline-block;
  }
 
  
  .arc-underline::after {
    content: "";
    position: absolute;
    bottom: -4px; /* 可以调整以适应你的设计 */
    left: 0;
    width: 100%;
    height: 4px; /* 下划线的厚度 */
    background: currentColor; /* 使用元素当前的字体颜色 */
    border-radius: 10px / 3px; /* 控制弧度 */
    transform: scaleX(0.9); /* 压缩下划线的长度 */
    transform-origin: center; /* 确保缩放时下划线居中 */
  }
  
  .tight-double-arc-underline {
    position: relative;
    display: inline-block;
  }
  
  .tight-double-arc-underline::after,
  .tight-double-arc-underline::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 4px; /* 下划线的厚度 */
    background: currentColor; /* 使用元素当前的字体颜色 */
    border-radius: 10px / 3px; /* 控制弧度 */
    transform: scaleX(0.8); /* 压缩下划线的长度 */
    transform-origin: center; /* 确保缩放时下划线居中 */
  }
  
  .tight-double-arc-underline::after {
    bottom: -4px; /* 调整这个值以改变双线之间的距离 */
  }
  
  .tight-double-arc-underline::before {
    bottom: -10px; /* 这里控制第二条线相对于第一条线的位置 */
  }
   


.slide-fade-enter-active {
  

  transition: all 0.3s ease-in;
  overflow-x: hidden;
}

.slide-fade-leave-active {
  transition: all 0.1s  ease-out;
  overflow-x: hidden;
  

  /* transition: all 0.1s ease-out; */
}

.slide-fade-enter-from,
.slide-fade-leave-to {
  transform: translateX(20px);
  opacity: 0;
}


.slide-fade1-enter-active {

  transition: all 0.3s ease-in;
  
}

.slide-fade1-leave-active {
  transition: all 0.1s  ease-out;
   
  

  /* transition: all 0.1s ease-out; */
}

.slide-fade1-enter-from,
.slide-fade1-leave-to {
  opacity: 0;
}
 /* -------- 公共尺寸 / 轮廓，不分 light / dark -------- */
.vue-flow__handle {
  width: 10px !important;
  height: 10px !important;
  border: none !important;
  outline: 3px solid var(--handle-bg, red) !important;
  outline-offset: 4px;
  background: var(--handle-bg, red) !important;
}

/* -------- Source / Target 动态绑定各自变量 -------- */
.vue-flow__handle.source  { --handle-bg: var(--handle-source); }
.vue-flow__handle.target  { --handle-bg: var(--handle-target); }

/* -------- 连线中 & 无效状态 -------- */
.vue-flow__handle-connecting:not(.vue-flow__handle-valid) {
  --handle-bg: var(--handle-invalid) !important;
  background: var(--handle-invalid) !important;
  border-color: var(--handle-invalid) !important;
  cursor: not-allowed;
  pointer-events: none;
}

/* 你的其它定制保持不变 */
.vue-flow__handle.target.connected { outline-offset: 0 !important; }
  
 
 
 .vue-flow__minimap {
  transform: scale(75%);
  transform-origin: bottom right;
}
 



 